Shallow Copy and Deep Copy in C